1. Field of the Invention
This invention relates to computer systems and, more particularly, to compilers for computer systems.
2. Background Information
A compiler includes a computer process or program which translates a computer language into machine code. An intermediate compiler includes a compiler which translates a higher level computer language into a lower level computer language which is not yet optimized into true machine code.
Intermediate computer language compilers such as Perl (i.e., a computer scripting language), Tcl/Tk (i.e., another computer scripting language), and the various UNIX shell interpreters (e.g., Bourne Shell, Korn Shell and C shell which translate a higher level language into lower level code at run time) serve as "glue" between different computer codes. These languages provide a mechanism for integrating various computer processes and programs to perform specific automation tasks.
In a highly regulated environment, in which various complex computer codes are maintained by numerous teams, configuration and control of information in automation projects is quite difficult. Additionally, users frequently require customization of automated sub-processes to meet plant specific requirements. To this end, prior art computer code was developed to overlay textual information and trace the pedigree of all input and output data which was used to create a computer code input deck, calculation note or report. By employing that prior art computer code, users can customize ASCII information, with such code automatically tracking the customization and providing information to a verifier in report form.
In the nuclear industry, for example, process automation is very complex. Over the decades, numerous engineers have written millions of lines of code. This coding is regulated and controlled. Nuclear reactor safety analysis, for example, demands automation that is not only elaborate, but flexible, to meet the strictest quality assurance standards.
It is known to provide data objects which have size information in object oriented programming. It is also known to process information using symbols. For example, interpreters pass and use symbol pointers. Normally, memory is pointed to, as in a compiled language such as, for example, C, C++ or FORTRAN; or memory is a symbolic string reference in an interpreter, such as Perl or a UNIX shell; or else there is strictly a direct reference to memory in an interpreter, such as BASIC.
It is known to employ memory which is shared between pre-compiled processes m computer systems. It is believed that UNIX "shared memory" is employed between pre-compiled processes, and is compile time bound and managed for synchronization using semaphores or record locking.
It is known to share information and memory across run-time compiled elements in UNIX systems by employing complex and expensive programming techniques such as data-piping and compile time usage restrictions.
It is known in the UNIX operating system argv[ ], argc array interaction with C programs, to pass strings from parent to child, but not from child to parent.
The prior art code is capable of tracing the pedigree of computer code ASCII input data through a process using a conventional UNIX script. However, there is room for improvement.